Skip to main content

FNP Bands

Purpose​

FNP stands for Fleet National Pricing in ViSN. FNP bands are the supplier-level pricing selector used when ViSN shows FNP job descriptions and menu prices for an enquiry.

The band itself does not create the price. In the OEC path, including Ford, the band tells ViSN which provider price column or price group should be used after the FNP provider has been selected for the vehicle manufacturer. MODULUS and OEM descriptions do not use this OEC band-filtering branch.

For the complete system, start with the FNP overview. For an enquiry that has no menu prices, use Debugging Missing Pricing.

FNP band data is used by three main areas:

  • supplier and DI network imports, where the supplier's FNP status and band are stored;
  • FNP menu price imports, where provider prices are stored by price group and band;
  • OEC enquiry job description retrieval, where stored descriptions are filtered by the enquiry's saved supplier band and fleet level.

Key Concepts​

ConceptMeaning
hasFnpImport value that controls whether the supplier is enabled for FNP. Supplier imports accept Y or N; the import manager converts this to a boolean.
fnpBandSupplier band value. This is stored under fnp.fnpBand on supplier network terms.
Fleet levelLease/customer pricing level used to choose which group of OEC costs applies. Supported values map to Service4Fleet, Service4Fleet Platinum ARVAL, and Lex Auto.
FNP providerProvider selected from the vehicle manufacturer. Current providers in the callable service are MODULUS, OEC, and OEM.
Price groupThe set of imported prices for a provider and fleet level. For OEC this is one of service4Fleet, service4FleetPlatinumArval, or lexAutoBand.

Allowed Supplier Band Values​

Supplier and DI network imports validate fnpBand against a fixed list. The current allowed values are:

Supplier import valueBand number used by matchingLex Auto LA valueNotes
Band 1 LA111Standard band 1, Lex Auto LA1 where applicable.
Band 2 LA121Standard band 2, Lex Auto LA1 where applicable.
Band 3 LA131Standard band 3, Lex Auto LA1 where applicable.
Band 5 (M25) LA151M25 band. The 25 text is ignored during numeric parsing.
Band 1 LA212Standard band 1, Lex Auto LA2 where applicable.
Band 2 LA222Standard band 2, Lex Auto LA2 where applicable.
Band 3 LA232Standard band 3, Lex Auto LA2 where applicable.
Band 5 (M25) LA252M25 band, Lex Auto LA2 where applicable.
Band 1 LA313Standard band 1, Lex Auto LA3 where applicable.
Band 2 LA323Standard band 2, Lex Auto LA3 where applicable.
Band 3 LA333Standard band 3, Lex Auto LA3 where applicable.
Band 5 (M25) LA353M25 band, Lex Auto LA3 where applicable.
Ford Region 2222n/aFord-specific regional band.
Ford Region 2323n/aFord-specific regional band.
NONEn/an/aReturns no descriptions in the OEC band-filtering path; does not disable MODULUS or OEM retrieval by itself.

The supplier import validation treats the field as required, with a maximum length of 20 characters.

Where Bands Are Stored​

When a supplier import or DI network import is processed, ViSN maps the two FNP columns into the service unit network terms:

{
"fnp": {
"isEnabled": true,
"fnpBand": "Band 1 LA1"
}
}

For lease-specific supplier terms, this lives on the lease company supplier service unit record.

For DI network rate cards, this lives on the service unit's diNetworkTerms.

When an enquiry is created, the relevant supplier terms are copied onto the enquiry. The source depends on the rate card type:

  • DI network rate card enquiries use the service unit's diNetworkTerms.fnp.
  • Lease/customer network enquiries use the lease company supplier service unit's fnp object.

Supplier Import Behavior​

The supplier import stores two separate pieces of FNP data:

Import columnStored fieldBehavior
has FNPfnp.isEnabledY becomes true; N, blank, or any unsupported boolean text becomes false.
FNP Bandfnp.fnpBandMust be one of the allowed values listed above.

Important behaviors:

  • FNP Band is required even when has FNP is N. Use NONE when the supplier should not be matched to a band.
  • Updating an existing supplier can turn FNP off by importing has FNP as N.
  • The supplier must still have a matching franchise/manufacturer before FNP descriptions are saved for an enquiry.
  • has FNP controls whether FNP is available for the supplier; FNP Band controls which OEC/Ford price subset is selected once FNP is available.

Provider Selection​

ViSN chooses the FNP provider from the vehicle manufacturer. The callable service recognizes these providers:

ProviderTypical manufacturers in the current checksBand relevance
OECVauxhall and Ford are explicitly accepted by the FNP supplier/franchise check.The supplier band is used to filter imported OEC/Ford costs.
MODULUSPeugeot and Citroen are explicitly accepted by the FNP supplier/franchise check.Supplier band is not used by the current getFnpDescriptions filtering path.
OEMKia and VWG group manufacturers are explicitly accepted by the FNP supplier/franchise check.Supplier band is not used by the current getFnpDescriptions filtering path.

The provider must be available for the manufacturer, the supplier must have FNP enabled, and the supplier franchise must match the vehicle manufacturer. The current description-generation helper explicitly bypasses its customer integration-enabled check for OEC Vauxhall/Ford, MODULUS Peugeot/Citroen, and OEM Kia/VWG. Other processes can still require the integration. See Configuration before using a customer integration switch to diagnose or control pricing.

OEC Band Price Groups​

OEC menu prices are imported into Cloud SQL with price columns for multiple fleet levels and bands. ViSN reshapes those price columns into these cost groups:

Fleet levelInternal groupMatching rule
Service4Fleetservice4FleetMatch the numeric band only.
Service4Fleet Platinum ARVALservice4FleetPlatinumArvalMatch the numeric band only.
Lex AutolexAutoBandMatch numeric band and LA value. The predicate supports matching Ford regions 22 and 23 on band only; see the Ford shaping issue below.

For a supplier band like Band 2 LA3, ViSN extracts the numbers from the string, ignores 25 if present in the M25 label, and uses the resulting values as:

band = 2
lexBand = 3

For Band 5 (M25) LA2, the parsed values become:

band = 5
lexBand = 2

For Ford Region 22, the parsed band is:

band = 22

Service4Fleet LA Handling​

The OEC import file contains Service4Fleet and Service4Fleet Platinum columns with LA1, LA2, and LA3 names in validation. During the current import transformation, ViSN normalizes these groups to the LA1 column for each band:

Stored OEC fieldSource import value
service4FleetBand1Service4Fleet_Band 1 LA1
service4FleetBand2Service4Fleet_Band 2 LA1
service4FleetBand3Service4Fleet_Band 3 LA1
service4FleetBand5M25Service4Fleet_Band 5 (M25) LA1
service4FleetPlatinumArvalBand1Service4FleetPlatinum(ARVAL)_Band 1 LA1
service4FleetPlatinumArvalBand2Service4FleetPlatinum(ARVAL)_Band 2 LA1
service4FleetPlatinumArvalBand3Service4FleetPlatinum(ARVAL)_Band 3 LA1
service4FleetPlatinumArvalBand5M25Service4FleetPlatinum(ARVAL)_Band 5 (M25) LA1

That means the LA suffix in the supplier band only affects Lex Auto matching. For Service4Fleet and Service4Fleet Platinum ARVAL, Band 2 LA1, Band 2 LA2, and Band 2 LA3 all match band 2.

Lex Auto LA Handling​

Lex Auto prices remain separated by LA value:

Supplier bandOEC price field selected for Lex Auto
Band 1 LA1lexBand1La1
Band 1 LA2lexBand1La2
Band 1 LA3lexBand1La3
Band 2 LA1lexBand2La1
Band 2 LA2lexBand2La2
Band 2 LA3lexBand2La3
Band 3 LA1lexBand3La1
Band 3 LA2lexBand3La2
Band 3 LA3lexBand3La3
Band 5 (M25) LA1lexBand5M25La1
Band 5 (M25) LA2lexBand5M25La2
Band 5 (M25) LA3lexBand5M25La3

For Ford region bands, the Lex Auto matching predicate treats regions 22 and 23 as special cases and matches on the region band only.

Ford Lex Auto shaping issue​

The reviewed callable source has a mismatch before this predicate runs: getStructuredDescriptionsForFord asks pickBandCostsFromRecord for groupKey: 'lexAutoBand', but the band constants use group: 'lexAuto'. As a result, this shaping path produces an empty costs.lexAutoBand even when the SQL response contains Ford prices. A correct Ford Region 22 or Ford Region 23 supplier band cannot recover prices that were omitted at this earlier stage.

This is an implementation issue in the reviewed revision, not evidence that Ford/Lex Auto pricing was never imported. Check the deployed version and stored description shape before escalating it as a missing import. Sources: Ford cost shaping and band constants.

Enquiry Lifecycle​

The high-level flow is:

NONE is a special value in the retrieval path. If fnpBand is NONE, OEC filtering returns no descriptions.

Older enquiries may contain a numeric fnpBand. The current OEC description retrieval converts numeric bands to an empty string, which produces no band-matched descriptions. This behavior and the NONE rule apply to the OEC filtering branch; neither is a global FNP off switch for MODULUS or OEM.

Data Checks​

Use these checks when an expected FNP price or description is missing:

  1. Check the supplier/network terms have fnp.isEnabled set to true.
  2. For OEC, check the enquiry's fnp.fnpBand is a supported string other than NONE, not an old numeric value. Compare it with the current network terms because changing those terms does not automatically update the enquiry snapshot.
  3. Check the supplier has a franchise matching the vehicle manufacturer.
  4. Check the vehicle manufacturer maps to an FNP provider.
  5. For OEC, check that the enquiry's saved fleet level maps to the expected internal cost group.
  6. For Lex Auto, check both the band number and LA suffix match a populated OEC price column. For Ford region bands, inspect the shaping issue above and the resulting costs.lexAutoBand array.
  7. For Service4Fleet and Service4Fleet Platinum ARVAL, check the LA1 source column because ViSN currently stores those groups from LA1 values.
  8. Check the FNP provider descriptions were saved under the enquiry's ancillary provider descriptions.